package com.bgs.travelapp.card.service;

import com.bgs.travelapp.card.entity.CardEntity;
import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import org.springframework.web.multipart.MultipartRequest;

import javax.smartcardio.Card;
import java.util.List;

/**
 * 会员卡管理 (后端、前端共用)
 * gpd
 * 2022-07-20 21点10分
 */
public interface CardService {

    /**
     * 会员卡新增 （后端--会员卡类型）
     * gpd 2022-08-02 17:09
     * @param cardEntity
     * @return
     */
    Integer saveCard(MultipartRequest multipartRequest,CardEntity cardEntity);

    /**
     * 新增校验方法---查询cardName是否重复（会员卡名称） （后端--会员卡类型）
     * gpd 2022-08-02 17:09
     * @param cardName
     * @return
     */
    List<CardEntity> selectCardName(String cardName);

    /**
     * 分页查询+模糊查（会员卡名称） （后端--会员卡类型）
     * gpd 2022-08-02 17:09
     * @param pageRequest
     * @param cardName
     * @return
     */
    PageResult getCardByPage(PageRequest pageRequest,String cardName);

    /**
     * 修改会员卡 （后端--会员卡类型）
     * gpd 2022-08-02 17:09
     * @param cardEntity
     * @return
     */
    Integer updateCard(MultipartRequest multipartRequest, CardEntity cardEntity);

    /**
     * 删除会员卡 （后端--会员卡类型）
     * gpd 2022-08-02 17:09
     * @param id
     * @return
     */
    Integer deleteCard(Integer id);

    /**
     * 查询所有会员卡类型 （前端---会员卡中心）
     * gpd 2022-08-02 17:09
     * @return
     */
    List<CardEntity> getCards();

    /**
     * 查询已选择会员卡类型 （前端---选择会员卡页面）
     * gpd 2022-08-02 17:09
     * @param cardId
     * @return
     */
    List<CardEntity> getCardType(Integer cardId);


}
